package com.zmn.plat.dubbo.interfaces.company.service;

import com.zmn.common.dto.VtDTO;
import com.zmn.common.dto2.ResponseDTO;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.util.List;

/**
 * 服务公司区域查询远程服务
 *
 * @author hankangshuai
 * @since 2021/02/20
 */
public interface ServiceCompanyAreaListRemoteService {

    /**
     * 根据平台和城市ID判断是否有服务商可以服务
     * 服务商迁移备注：因网关地址被前端引用，涉及范围较广，可能无法全量更换，因此提供兼容接口
     *
     * @param cityId 城市ID，必传
     * @param plat   平台
     * @return 是否可以服务 true 可以 false 不可以
     * @deprecated
     */
    @Deprecated
    @ApiOperation(value = "位置是否在此服务的服务范围内", response = ResponseDTO.class, notes = "需要配置：公司-城市-区域-服务分类-服务范围", tags = "服务范围")
    ResponseDTO<Boolean> checkByPlatAndCityId(@NotNull(message = "平台不能为空") @ApiParam(value = "plat", required = true) Integer plat,
                                              @NotNull(message = "城市ID不能为空") @ApiParam(value = "城市ID", required = true) Integer cityId);

    /**
     * 查询城市根据管理公司id
     * 服务商迁移备注：因网关地址被前端引用，涉及范围较广，可能无法全量更换，因此提供兼容接口
     * @param manageCompanyId 服务商ID
     * @return List《VtDTO》 服务商开通的城市集合
     */
    @Deprecated
    @ApiOperation(value = "查询开通的城市", response = ResponseDTO.class, notes = "根据服务商ID查询开通的城市", tags = "开通城市")
    ResponseDTO<List<VtDTO>> listCityByManageCompanyId(@NotNull(message = "manageCompanyId不能为空") @Positive(message = "manageCompanyId必须为大于0的正整数") @ApiParam(value = "服务商ID", required = true) Integer manageCompanyId);


}
